package com.hemerasolutions.v2trainer.delegate.interfaces;

import java.util.ArrayList;
import java.util.List;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.ExerciseDetailsCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.list.IntensityZoneListCompInterface;
import com.hemerasolutions.v2trainer.model.exercise.Exercise;
import com.hemerasolutions.v2trainer.model.exercise.VersionableExercise;
import com.hemerasolutions.v2trainer.model.exercise.executions.Execution;
import com.hemerasolutions.v2trainer.model.modality.Modality;
import com.hemerasolutions.v2trainer.model.muscle.BodyRegion;
import com.hemerasolutions.v2trainer.model.muscle.Muscle;
import com.hemerasolutions.v2trainer.model.muscle.MuscleGroup;

public interface ExerciseTableCompInterface extends BaseComponentInterface {

	public abstract void setFilterExerciseByMuscles(List<Muscle> filterExerciseByMuscles);

	public abstract List<Muscle> getFilterExerciseByMuscles();

	public abstract void setFilterExerciseByMuscleGroups(List<MuscleGroup> filterExerciseByMuscleGroups);

	public abstract List<MuscleGroup> getFilterExerciseByMuscleGroups();

	public abstract void setFilterExerciseByBodyRegions(List<BodyRegion> filterExerciseByBodyRegions);

	public abstract List<BodyRegion> getFilterExerciseByBodyRegions();

	public abstract void setFullMuscles(ArrayList<Muscle> fullMuscles);

	public abstract ArrayList<Muscle> getFullMuscles();

	public abstract void setFullMuscleGroups(ArrayList<MuscleGroup> fullMuscleGroups);

	public abstract ArrayList<MuscleGroup> getFullMuscleGroups();

	public abstract void setFullBodyRegions(List<BodyRegion> fullBodyRegions);

	public abstract List<BodyRegion> getFullBodyRegions();

	public abstract void setFullExecutions(List<Execution> fullExecutions);

	public abstract List<Execution> getFullExecutions();

	public abstract void setFilterExerciseByDefault(Boolean filterExerciseByDefault);

	public abstract Boolean getFilterExerciseByDefault();

	public abstract void setFilterExerciseByTechnical(Boolean filterExerciseByTechnical);

	public abstract Boolean getFilterExerciseByTechnical();

	public abstract void setFilterExerciseByExecutions(List<Execution> filterExerciseByExecutions);

	public abstract List<Execution> getFilterExerciseByExecutions();

	public abstract void setFilterExerciseByDescription(String filterExerciseByDescription);

	public abstract String getFilterExerciseByDescription();

	public abstract void setFilterExerciseByName(String filterExerciseByName);

	public abstract String getFilterExerciseByName();

	public abstract void setFilteredExercises(List<VersionableExercise> filteredExercises);

	public abstract List<VersionableExercise> getFilteredExercises();

	public abstract void setExercise(Exercise exercise);

	public abstract Exercise getExercise();

	public abstract void setModality(Modality modality);

	public abstract Modality getModality();

	public abstract void changeFullMuscleGroups();

	public abstract void changeFullBodyRegions();

	public abstract void deleteExercise();

	public abstract void toAdjustIntensitys();

	public abstract void filterExercises();

	public abstract void toViewExercise();

	public abstract void toFilterExercises();

	public abstract void toAddExercise();

	public abstract	void refresh();

	public abstract	IntensityZoneListCompInterface getIzList();

	public abstract	void setIzList(IntensityZoneListCompInterface izList);

	public abstract	ExerciseDetailsCompInterface getExerciseDetailsComp();

	public abstract	void setExerciseDetailsComp(ExerciseDetailsCompInterface exerciseDetailsComp);
	
}

